﻿
$(function () {
    setCampos();
});


function MostrarMensagem(mensagem, erro) {
    if (erro) {
        $("#dvMensagemScript").removeClass("pnAlertaAmarelo");
        $("#dvMensagemScript").addClass("pnAlertaVermelho");
    }
    else {
        $("#dvMensagemScript").removeClass("pnAlertaVermelho");
        $("#dvMensagemScript").addClass("pnAlertaAmarelo");
        window.setTimeout(function () { OcultarPanel(); }, 5000);
    }

    $("#dvMensagemScript").css("display", "block");
    $("#lblMensagemScript").html(mensagem);
}

function EsconderMensagem() {

    $("#dvMensagemScript").css("display", "none");

}

function geraCalendario(id) {
    var valor = $("#" + id).val();
    $.datepicker.setDefaults($.datepicker.regional[""]);
    $("#" + id).datepicker();
    $("#" + id).datepicker("option", "dateFormat", "dd/mm/yy");
    $("#" + id).datepicker($.datepicker.regional["pt-BR"]);
    $("#" + id).datepicker("option", "dayNamesMin", ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab']);
    $("#" + id).datepicker("option", "monthNames", ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outrubro', 'Novembro', 'Dezembro']);
    $("#" + id).val(valor);
    $("#" + id).mask("99/99/9999");
    $("#" + id).change(function () {
        var data = $(this).val();
        if (data != "") {
            var v = checkDate(data);
            if (v) {
                //$(this).attr("class", "text");
                $(this).attr("title", "");
            } else {
                //alert(id);
                //$("#" + id).attr("class", "erro");
                $(this).addClass("erro");
                $(this).attr("title", "Data inválida");
            }
        }
    });
}

function setCampos() {
    $("input[mascara]").each(function () {
        $(this).mask($(this).attr("mascara"));
    });

    $("input[tipo]").each(function () {
        var tipo = $(this).attr("tipo");
        if (tipo == "data") {
            //$(this).datepicker();
            geraCalendario($(this).attr("id"));
        }
        if (tipo == "moeda")
            mascaraMoeda($(this).attr("id"));
        if (tipo == "telefone")
            $(this).mask("(99) 9999-9999");
        if (tipo == "email")
            $(this).blur(campoEmail($(this).attr("id")));
        if (tipo == "numero")
            $(this).keypress(verificaNumero);
        if (tipo == "hora")
            $(this).mask("99:99");
    });
}

function verificaNumero(tecla) {
    if (tecla.which != 8 && tecla.which != 0 && (tecla.which < 48 || tecla.which > 57)) {
        return false;
    }
}

function mascaraMoeda(id) {
    $("#" + id).keypress(function () {
        return FormataReais(this, ".", ",", event);
    });
}

function FormataReais(fld, milSep, decSep, e) {
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    //whichCode = (window.Event) ? e.which : e.keyCode; /// parou de funcionar no layout novo. 
    var whichCode = e.KeyCode;
    if (whichCode == undefined) whichCode = e.which;
    if (whichCode == undefined) whichCode = e.keyCode;
    if (whichCode == 13) return true;
    key = String.fromCharCode(whichCode);  // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) return false;  // Chave inválida
    len = fld.value.length;
    for (i = 0; i < len; i++)
        if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) break;
    aux = '';
    for (; i < len; i++)
        if (strCheck.indexOf(fld.value.charAt(i)) != -1) aux += fld.value.charAt(i);
    aux += key;
    len = aux.length;
    if (len == 0) fld.value = '';
    if (len == 1) fld.value = '0' + decSep + '0' + aux;
    if (len == 2) fld.value = '0' + decSep + aux;
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += milSep;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        fld.value = '';
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
            fld.value += aux2.charAt(i);
        fld.value += decSep + aux.substr(len - 2, len);
    }
    return false;
}